package Controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import Model.Contact;
import Model.FichierManager;
import View.addressBookView;
import View.modifieContactView;
/**
 * 
 * @author mada
 *classe modfieContactController
 *s'occuper de gerer la vue modifieContactView avec ses donnés
 */


public class modifieContactController {
	private modifieContactView modFen;
	private addressBookView fenetrePrincipale;
	private FichierManager man= new FichierManager("fichier.txt");
	private Thread t;
	
	public modifieContactController(modifieContactView modFen){
		this.modFen=modFen;
		this.modFen.cancelContactListener(new classCancelContact());
		this.modFen.modifierContactListener(new classModContact());
	}
	class classModContact implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			t=new Thread(new ThreadAction());
			t.start();
			modFen.dispose();
		}
		
	}
	
	public class classCancelContact implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			modFen.dispose();
			
			}
		}
	/**
	 * 
	 * @author mada
	 * class interne implémenté de Runnable:
	 * la fonction run est executé dans la methode actionPormed
	 * dans la class interne classModContact lorsque le
	 * thread est instancié avec la methode .start()
	 * 
	 */
	
	class ThreadAction implements Runnable{

		@Override
		public void run() {
			
			Contact nouv_cont=new Contact(modFen.getJtf1(),modFen.getJtf2(),modFen.getJtf3(),modFen.getJtf4(),modFen.getJtf5(),modFen.getJtf6(),modFen.getJtf7(),modFen.getCombo());
			Contact cont_test = new Contact("","","","","","","","");
			cont_test = man.rechercherContact(fenetrePrincipale.getJlist().getSelectedValue().toString());
	
			// on supprime l'ancien contacte du fichier
			try {
				man.supprimerContact(cont_test);
				fenetrePrincipale.remplirArrayList();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			// on ajoute le nouveau contacte dans le fichier
			try {
				man.ajouterContact(nouv_cont);
				fenetrePrincipale.remplirArrayList();
				String grp=modFen.getCombo();
				if(grp.equals("Amis")) fenetrePrincipale.remplirJlistAmis();
				else if(grp.equals("Famille")) fenetrePrincipale.remplirJlistFamille();
				else fenetrePrincipale.remplirJlistTravail();
				fenetrePrincipale.remplirJlist();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		
		}
		
	}
	
}
